print_distance(cur_info->length, 0, 1, 0);
print_course(cur_info->first_wpt, cur_info->last_wpt);
gbfprintf(fout, "\t%d waypoints\t", cur_info->count);
- print_string("%s\r\n", rte->rte_url ? rte->rte_url : "");
+ print_string("%s\r\n", rte->rte_url);
gbfprintf(fout, "\r\nHeader\t%s\r\n\r\n", headers[rtept_header]);
}
print_date_and_time(cur_info->time, 1);
print_distance(cur_info->length, 0, 1, 0);
print_speed(&cur_info->length, &cur_info->time);
- print_string("%s", (track->rte_url != NULL) ? track->rte_url : "");
+ print_string("%s", track->rte_url);
gbfprintf(fout, "\r\n\r\nHeader\t%s\r\n\r\n", headers[trkpt_header]);
}
rte->rte_name = DUPSTR(str);
break;
case 5:
- rte->rte_url = DUPSTR(str);
+ rte->rte_url = str;
break;
}
}
trk->rte_name = DUPSTR(str);
break;
case 6:
- trk->rte_url = DUPSTR(str);
+ trk->rte_url = str;
break;
}
}
#define FREAD_i16 gbfgetint16(fin)
#define FREAD_STR(a) gdb_fread_str(a,sizeof(a),fin)
#define FREAD_CSTR gdb_fread_cstr(fin)
+#define FREAD_CSTR_AS_QSTR gdb_fread_cstr_as_qstr(fin)
#define FREAD_DBL gbfgetdbl(fin)
#define FREAD_LATLON GPS_Math_Semi_To_Deg(gbfgetint32(fin))
return result;
}
+static QString
+gdb_fread_cstr_as_qstr(gbfile* fin)
+{
+ char* result = gdb_fread_cstr(fin);
+ QString qresult = result;
+ xfree(result);
+ return qresult;
+}
+
static int
gdb_fread_str(char* buf, int size, gbfile* fin)
{
return res;
}
-static char*
+static QString
gdb_fread_strlist(void)
{
char* res = NULL;
count--;
}
- return res;
+ QString qres = res;
+ xfree(res);
+ return qres;
}
static waypoint*
DBG(GDB_DBG_WPTe, res->description)
printf(MYNAME "-wpt \"%s\" (%d): description = %s\n",
sn, wpt_class, nice(res->description));
- DBG(GDB_DBG_WPTe, res->url)
+ DBG(GDB_DBG_WPTe, !res->url.isNull())
printf(MYNAME "-wpt \"%s\" (%d): url = %s\n",
- sn, wpt_class, nice(res->url));
+ sn, wpt_class, nice(qPrintable(res->url))); // FIXME: qPrintable and nice probably are fighting.
#endif
i = FREAD_i16;
if (i != 0) {
#if GDB_DEBUG
DBG(GDB_DBG_WPTe, icon != GDB_DEF_ICON)
printf(MYNAME "-wpt \"%s\" (%d): icon = \"%s\" (MapSource symbol %d)\n",
- sn, wpt_class, nice(res->icon_descr), icon);
+ sn, wpt_class, nice(qPrintable(res->icon_descr)), icon); // FIXME: qPrintable and nice probably are fighting.
#endif
if ((str = GMSD_GET(cc, NULL))) {
if (! GMSD_HAS(country)) {
/* VERSION DEPENDENT CODE */
if (gdb_ver <= GDB_VER_2) {
- rte->rte_url = FREAD_CSTR;
+ rte->rte_url = FREAD_CSTR_AS_QSTR;
} else {
rte->rte_url = gdb_fread_strlist();
if (gdb_ver >= GDB_VER_3) {
res->rte_url = gdb_fread_strlist();
} else { /* if (gdb_ver <= GDB_VER_2) */
- res->rte_url = FREAD_CSTR;
+ res->rte_url = FREAD_CSTR_AS_QSTR;
}
#if GDB_DEBUG
- DBG(GDB_DBG_TRK, res->rte_url)
+ DBG(GDB_DBG_TRK, !res->rte_url.isNull())
printf(MYNAME "-trk \"%s\": url = %s\n",
- res->rte_name, res->rte_url);
+ res->rte_name, qPrintable(res->rte_url));
#endif
return res;
}
route_head *
route_head_alloc(void)
{
- route_head *rte_head;
- rte_head = (route_head *) xcalloc(sizeof(*rte_head), 1);
+ route_head* rte_head = new route_head;
QUEUE_INIT(&rte_head->Q);
QUEUE_INIT(&rte_head->waypoint_list);
- rte_head->line_color.bbggrr = -1;
- rte_head->line_color.opacity = 255;
- rte_head->line_width = -1;
rte_head->session = curr_session();
return rte_head;
}
if (rte->rte_desc) {
xfree(rte->rte_desc);
}
- if (rte->rte_url) {
- xfree(rte->rte_url);
- }
waypt_flush(&rte->waypoint_list);
if (rte->fs) {
fs_chain_destroy(rte->fs);
}
- xfree(rte);
+ delete rte;
+ rte = NULL;
}
rte_new = route_head_alloc();
rte_new->rte_name = xstrdup(rte_old->rte_name);
rte_new->rte_desc = xstrdup(rte_old->rte_desc);
- rte_new->rte_url = xstrdup(rte_old->rte_url);
+ rte_new->rte_url = rte_old->rte_url;
rte_new->fs = fs_chain_copy(rte_old->fs);
rte_new->rte_num = rte_old->rte_num;
any_route_add_head(rte_new, *dst);